package bancosys.tec.rtm.diagnostician;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Bean que armazena as informações de um diagnostico.
 * 
 * @author Evaristo
 * @created 23/01/2007
 */
public class DiagnosisBean {

    private String diagnosticianName;

    private boolean working = false;

    private final List<String> descriptions = new ArrayList<String>();

    private final Map<String, Object> values = new HashMap<String, Object>();

    /**
     * Construtor.
     * 
     * @param name nome do diagnostico.
     */
    public DiagnosisBean(String name) {
        this.diagnosticianName = name;
    }

    /**
     * @return nome do diagnosticador.
     */
    public String getDiagnosticianName() {
        return this.diagnosticianName;
    }

    /**
     * @return <code>true</code> se dianostico executou completamente, <code>false</code> em caso contrário.
     */
    public boolean isWorking() {
        return this.working;
    }

    /**
     * @param complete <code>true</code> se diagnóstico foi positivo (tá funcionando!), <code>false</code> caso contrário.
     */
    public void setWorking(boolean complete) {
        this.working = complete;
    }

    /**
     * @return as descrições do diagnostico.
     */
    public List<String> getDescriptions() {
        return this.descriptions;
    }

    /**
     * Adiciona uma descrição ao diagnostico.
     * 
     * @param description descrição.
     */
    public void addDescription(String description) {
        this.descriptions.add(description);
    }

    /**
     * Adiciona valor ao mapa de valores com chave e valor passados.
     * 
     * @param key chave.
     * @param value valor.
     */
    public void putValue(String key, Object value) {
        this.values.put(key, value);
    }

    /**
     * @return mapa de valores.
     */
    public Map<String, Object> getValues() {
        return values;
    }
}